A computer network is a collection of interconnected network devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, the network devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form.
The network devices may include routers, security appliances, network switches, wireless access points, or the like. Routers, for example, maintain tables of routing information that describe routes through the network. A “route” can generally be defined as a path between two locations on the network. Upon receiving an incoming data packet, the router examines destination information within the packet to identify the destination for the packet. Based on the destination, the router forwards the packet in accordance with the routing table.
Network Service Providers (NSPs) maintain network devices, including routers, to provide Internet access and other services to customers and to communicate network traffic across a service provider network, such as the Internet. Examples of services that the NSP may provide include Voice over IP (VOIP), access for Asynchronous Transfer Mode (ATM) or frame relay communications, Internet protocol (IP) data services, and multimedia services, such as video streaming. Due to the constantly evolving end-user application features that request ever-newer requirements of the network devices, a network device operator of the NSP will never reach a stage where the service provider network has all the services and features that will ever be needed by its customers. The network device operator, therefore, is constantly in the process of enabling new software features for the routers and other network devices of the service provider network as the features become available.
From the viewpoint of the network device operator, the sole understanding of the new features is based on what is described in the technical documentation or industry literature. Dependencies between software internal state and the event being performed by the network device operator are non-obvious to the network device operator. The network device operator does not always know in advance the implications of an interaction with a network device via a configuration change or a hardware event. An action by the network device operator can end up triggering undesirable events in the service provider network that may cause traffic-losses, or even network unreachability, depending on the feature, for the customers.